
const App = getApp()

import Request_post from "../../../../request/Request_post"
import Request_get from "../../../../request/Request_get"

import config from "../../../../config/config"


var unformatDate = require("../../../../utils/CustomFunction/dateUnFormat.js")
var today = require("../../../../utils/CustomFunction//getToday.js")
var time = require("../../../../utils/CustomFunction/getNowTime.js")

Page({

	/**
	 * 页面的初始数据
	 */
	data: {


		array: [ 
			{id: '01', name: '同意',checked: false}, 
			{id: '02', name: '不同意',checked: false}
		],

		// 页面外链资源图片（需要本地缓存的）
    pageImage: 
    [ 
      {key: "logo_Rectangle",value: config.imageUrl+"logo_Rectangle.png"},
    ],

		regType:"00",

		//跳转页面
    jumpPageA:"/SubpkgMemberbiz/pages/Member/InfoInput/InfoInput",

	},





	// radio选项框绑定的方法
	radioChange(e) {
		console.log('radio发生change事件，携带value值为：', e.detail.value)
			const array = this.data.array
			for (var i = 0; i < array.length ; ++i) {
				array[i].checked = array[i].value === e.detail.value
			}
			this.setData({
					radio:e.detail.value
				})
		},

	/** 外链图片Url资源，缓存到本地 */
	storeImage:function(){
    var that = this
    let obj = {}
    let pageimgArr = that.data.pageImage
    // 图片外链url：ip:端口 替换成 域名（外链资源不做域名转换了，而是外链资源原始链接必须就是域名url）
    // pageimgArr.forEach(i => {i.value = config.domainName + i.value.split('/').slice(3).join('/')})
    // 调用本地文件缓存方法 mapCacheUrl
    pageimgArr = pageimgArr.map(i => ({
      ...i,imgpath:cacheimg.mapCacheUrl(i.value)
    }))  
    // 数组转换为对象
    pageimgArr.forEach(i => {obj[i.key] = i.imgpath})
    that.setData({pageStoreimg: obj })
    // console.log(that.data.pageStoreimg)
 
	},


	


	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {
		var that=this

		// 外链资源图片链接 本地缓存
    if(App.globalData.ResourcesLink_Locstr === 'y'){
      that.storeImage();
    // 外链资源图片链接 直接读取url地址
    }else{
      let pageimgArr = that.data.pageImage
      let object = {}
      pageimgArr.forEach(i => {object[i.key] = i.value}) // 数组转换为对象
      that.setData({pageStoreimg: object })
      // console.log(that.data.pageStoreimg)
    }

		//调用 Erp参数设置 的方法
		that.GetSysOptReg();

	},


	/* 获取Erp系统 设置参数：是否需要强制录入会员、外链资源是否缓存本地、Erp链接资源是否缓存本地 */
	// 被调用
	GetSysOptReg:function(){
		var that = this
    /** Api请求 基础信息查询-wxmkt_baseinfo-002-系统设置查询 **/
    Request_get.get( 
      config.domainName+"api_wxmkt_baseinfo/sysopts",
      {},
      function(res){
        // console.log(res)
        if(res != "undefined" && res.return_no == 1){
          wx.setStorageSync('StrSysoption',res.return_data)
          App.globalData.isCpsMbrInfo_input = wx.getStorageSync('StrSysoption').wxmbrregfociptinfo
          App.globalData.ResourcesLink_Locstr = wx.getStorageSync('StrSysoption').wxmktcachesrcimg
          App.globalData.Erpimage_Locstr = wx.getStorageSync('StrSysoption').wxmktcachesysimg
        }
      }
    )
    /** Api请求 基础信息查询-wxmkt_baseinfo-001-注册信息查询 **/
    Request_get.get( 
      config.domainName+"api_wxmkt_baseinfo/sysregs",
      {},
      function(res){
        // console.log(res)
        if(res != "undefined" && res.return_no == 1){
          wx.setStorageSync('StrSysreginfo',res.return_data)
        }
      }
    )
  },



	/**
	 * 自定义事件函数--按钮提交（获取）电话号码
	 * 1. 点击按钮获取电话号码mbl
	 * 2. 用电话号码 + openid 先进行绑定操作（如果绑定成功，则进入会员主页，如果绑定失败：——{此电话号码不是会员}，则进行新会员注册）
	 * 		2-1. 如果绑定成功，则进入会员主页 
	 * 		2-2. 如果绑定失败：{此电话号码不是会员}，则进行新会员注册
	 */
	// 获取电话号码（微信授权获取）
	getPhoneNumber (e) {
		var that = this
		console.log('getPhoneNumber',e)
		/**API请求：微信Api：获取Code 发送到后台换取 openId, sessionKey, unionId */ 
		wx.login({ 
			success: res => {
				console.log('wx.login',res)
				/**API请求：Wxapi微服务：002-微信小程序参数解析 （获取电话号码） */
				Request_post.post(
					config.domainName+"api_wxapi/wxminiprogram/wxdecodedata",
				{
					code: res.code,
					encryptedData: e.detail.encryptedData,
					iv: e.detail.iv,
				},  
				function(res){
					console.log('Wxapi微服务：002-微信小程序参数解析',res)
					if(res != "undefined" && res.return_no == 1){
						App.globalData.mbl = res.return_data.phoneNumber					//授权获得电话号码 存全局变量
						/**API请求：Mkt微服务：04-004 会员绑定接口 */
						Request_post.post(  
							config.domainName+"api_wxmkt_server/mbrreg/bandingwxmbr",
							{cltid: config.cltid,},
							function(res){
								if(res && res.return_no != 1){   			// 会员绑定失败（"return_no": -1, 手机号【xxxxxxx】会员不存在!）
									if(App.globalData.isCpsMbrInfo_input =='y'){ 			//需要强制录入会员信息的,跳转到信息录入页面，录入信息后完成新会员注册：
										wx.redirectTo({
											url:that.data.jumpPageA,
										})
									}else if(App.globalData.isCpsMbrInfo_input =='n'){		//不需要强制录入会员信息的，则直接注册新会员

										/**API请求：Mkt微服务：04-003 会员注册接口 */
										Request_post.post(
											config.domainName+"api_wxmkt_server/mbrreg/registerwxmbr", 
											{
												cltid: config.cltid,
												name: "未命名",
												sex: "m",
												birthday: "00000000",
												adr: "", 
												crtno: "",
												pltno: "",
												mbrclsid: "01",
												cardclsid: "01"
											},
											function(res){
												// console.log(res)
												if(res && res.return_no == 1){ 
													wx.setStorageSync('StrMbrInfo',res.return_data)	//将会员信息存入缓存（备用）
													// 调用积分增加规则的查询方法（积分增加规则方法中 调用 增加积分的方法）
													that.findmbritgruladd();
													that.regadditgPromise.then(v => { 
														that.setData({
															mbrregflg: that.data.newmbritgflg,
															mbrregItg: that.data.addItg
														})

														console.log('regbind页面 跳转的')
														that.wx_redirectTo();
													})
												}else{
													wx.showModal({
														title:res["return msg"]
													})
												}
											}
										)
									}
								}else if(res && res.return_no == 1){  			
									App.globalData.regflg = 'y'																// 会员绑定成功
									wx.setStorageSync('StrMbrInfo',res.return_data)					// 将会员信息存入缓存（备用）
									if(App.globalData.isCpsMbrInfo_input =='y' ){			// 需要强制录入个人信息的，则检查个人信息是否完整
										const mbrInfo = wx.getStorageSync('StrMbrInfo')		// 提取缓存中的会员信息对象
										if( mbrInfo.name == config.name || mbrInfo.birthday == "0000-00-00" || mbrInfo.sex == config.sex){ 
											wx.redirectTo({  															// 强制录入时：个人信息尚未录入——跳转至个人信息录入页面
												url:that.data.jumpPageA
											});
										}else{															// 强制录入时：个人信息已录入——跳转回index页面
											// console.log('regbind页面 绑定后跳转的（强制录入&&已录入）')													
											wx.redirectTo({ 	
												url:"/pages/index/index"
											});
										}
									}else{																// 不需要强制录入个人信息的，则跳转回index页面
										// console.log('regbind页面 绑定后跳转的（不强制）')																		
										wx.redirectTo({ 
											url:"/pages/index/index"
										});
									}
								}
							}
						)
					}else{
						wx.showModal({
							Title:"微信解析：wxdecodedata 失败\n\n请重新点击【微信授权】按钮",
						})
					}
				})
			},
			fail:res => {
				wx.showModal({
					Title:"微信登录失败，\n\n请点击【微信授权】按钮重试",
				})
			}
		})
	},

	



	// 跳转的页面
	
	backhome(){
		wx.redirectTo({
			url: '/pages/index/index',
		})
	},

	
	
	wx_redirectTo:function(){
		App.globalData.regflg = 'y'
		if(App.globalData.Scenepath === '/pages/index/index'){
		  wx.redirectTo({
			 url:App.globalData.homePage +"?mbrregflg="+that.data.mbrregflg+"&mbrregItg="+that.data.mbrregItg
		  });
		}else if(App.globalData.Scenepath !== '/pages/index/index'){
		  wx.redirectTo({
			 url:App.globalData.Scenepath+App.globalData.Scenepath_parameter +"?mbrregflg="+that.data.mbrregflg+"&mbrregItg="+that.data.mbrregItg
		  });
		}
	 },





	/** Api请求  001-会员赚积分活动规则查询 —— 被调用*/
	findmbritgruladd:function(){
		var that = this
		this.setData({
			newmbritgflg: "n",
			addItg: 0,
			Today:unformatDate.DatString(today.getToday()),
			getTodayDtm: unformatDate.DatString(today.getToday()) + unformatDate.DatString(time.getNowTime()) 
		})

		that.regadditgPromise = new Promise ((resolve,reject) => {
			// Api请求：06-001 会员赚积分活动规则查询
			Request_get.get(
				config.domainName+'api_wxmkt_server/mbritgadd/findmbritgruladd',
				{
					additgactid:'01' //赚积分活动规则ID（01-新会员注册送积分、02-完善会员资料奖励积分、03-签到送积分）
				},
				function(res){	
					const additgList = res.return_data
					if(additgList.length > 0){
						for(var i in additgList){
							if(  //长期规则
								additgList[i].rulclsid == '01' && additgList[i].itgvlu > 0 &&  additgList[i].enldat <= that.data.getTodayDtm && additgList[i].disdat >= that.data.getTodayDtm){
								var longRuladdItg = additgList[i].itgvlu
								// console.log(longRuladdItg)
							}else if(  //临时规则
								additgList[i].rulclsid == '02' && additgList[i].itgvlu > 0 && additgList[i].enldat <= that.data.getTodayDtm && additgList[i].disdat >= that.data.getTodayDtm){
								var shortRuladdItg  = additgList[i].itgvlu
								// console.log(shortRuladdItg)
							}
						}
						// 临时规则 和 长期规则 的最终赋值（临时规则存在，则积分值为临时规则的积分值，否则为长期规则的积分值）
						shortRuladdItg? that.setData({newmbritgflg:"y",addItg:shortRuladdItg}): that.setData({newmbritgflg:"y",addItg:longRuladdItg})
						// 调用增加积分方法
						that.newMbrregitgadd();
						resolve(true);
					}else{
						that.setData({newmbritgflg:"n",addItg:0})
						resolve(true);
					}
				}
			)
		})
	},
	
	/** Api请求  06-002:会员积分增加 —— 被06-001调用*/
	newMbrregitgadd:function(){
		var that = this
		that.setData({
			bllno: Math.round(new Date() / 1000),
		})
		Request_post.post(
			config.domainName+"api_wxmkt_server/mbritgadd/addmbritg",
			{
				oprcltid: "001",
				oprid: "51",
				oprdat: that.data.getTodayDtm,     
				srcbllno: that.data.bllno,
				additgvlu: that.data.addItg,
				brief: "新会员注册送积分"
			},
			function(res){
				if(res && res.return_no == 1){
					that.setData({
						itgaddflg: '01',
						msg: res.return_msg
					})
				}
			}
		)
	},



	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {
	
	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {

	},



/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {

}
})






